<?xml version="1.0"?>
<doc>
    <assembly>
        <name>ZeroconfService</name>
    </assembly>
    <members>
        <member name="T:ZeroconfService.NetService">
            <summary>
            <para>
            The NetService class represents a network service that your application publishes
            or uses as a client. This class, along with the browser class
            <see cref="T:ZeroconfService.NetServiceBrowser">NetServiceBrowser</see> use multicast DNS to
            communicate accross the local network.
            </para>
            <para>
            Your application can use this class to either publish information about
            a service, or as a client to retrieve information about another service.
            </para>
            <para>
            If you intend to publish a service, you must setup the service to publish and
            acquire a port on which the socket will recieve connections. You can then create
            a NetService instance to represent your service and publish it.
            </para>
            <para>
            If you intend to resolve a service, you can either use <see cref="T:ZeroconfService.NetServiceBrowser">NetServiceBrowser</see>
            to discover services of a given type, or you can create a new NetService object
            to resolve information about an known existing service.
            See <see cref="M:ZeroconfService.NetService.#ctor(System.String,System.String,System.String)">NetService()</see>
            for information about creating new net services.
            </para>
            </summary>
            <remarks>
            <para>
            Network operations are performed asynchronously and are returned to your application
            via events fired from within this class. Events are typically fire in your
            application's main run loop, see <see cref="T:ZeroconfService.DNSService">DNSService</see> for information
            about controlling asynchronous events.
            </para>
            <para>
            It is important to note that this class uses the same asynchronous method to
            publish records as it does to fire events. So if you are simply publishing a service,
            you must still ensure that the <see cref="T:ZeroconfService.DNSService">DNSService</see> parent class
            is properly placed into a run loop.
            </para>
            </remarks>
        </member>
        <member name="T:ZeroconfService.DNSService">
            <summary>
            The base class used by the <see cref="T:ZeroconfService.NetServiceBrowser">NetServiceBrowser</see>
            and <see cref="T:ZeroconfService.NetService">NetService</see> classes. This class primarily
            abstracts the asynchronous functionality of its derived classes.
            </summary>
            <remarks>
            It should not be necessary to derive from this class directly.
            </remarks>
        </member>
        <member name="M:ZeroconfService.DNSService.Invoke(System.Delegate,System.Object[])">
            <summary>
            Calls a method using the objects invokable object.
            </summary>
            <param name="method">The method to call.</param>
            <param name="args">The arguments to call the object with.</param>
            <returns>The result returned from method, or null if the method
            could not be invoked.</returns>
        </member>
        <member name="M:ZeroconfService.DNSService.SetupWatchSocket(System.IntPtr)">
            <summary>
            Starts polling the DNSService socket, and delegates
            data back to the primary DNSService API when data arrives
            on the socket.
            </summary>
        </member>
        <member name="M:ZeroconfService.DNSService.TeardownWatchSocket(System.IntPtr)">
            <summary>
            This method tears down a previously setup watch socket.
            </summary>
        </member>
        <member name="P:ZeroconfService.DNSService.DaemonVersion">
            <summary>
            
            </summary>
        </member>
        <member name="P:ZeroconfService.DNSService.AllowApplicationForms">
            <summary>
            Allows the application to attempt to post async replies over the
            application "main loop" by using the message queue of the first available
            open form (window). This is retrieved through
            <see cref="P:System.Windows.Forms.Application.OpenForms">Application.OpenForms</see>.
            </summary>
        </member>
        <member name="P:ZeroconfService.DNSService.InvokeableObject">
            <summary>
            Set the <see cref="T:System.ComponentModel.ISynchronizeInvoke">ISynchronizeInvoke</see>
            object to use as the invoke object. When returning results from asynchronous calls,
            the Invoke method on this object will be called to pass the results back
            in a thread safe manner.
            </summary>
            <remarks>
            This is the recommended way of using the DNSService class. It is recommended
            that you pass your main <see cref="T:System.Windows.Forms.Form">form</see> (window) in.
            </remarks>
        </member>
        <member name="P:ZeroconfService.DNSService.AllowMultithreadedCallbacks">
            <summary>
            If this is set to true, <see cref="P:ZeroconfService.DNSService.AllowApplicationForms">AllowApplicationForms</see>
            is set to false and <see cref="P:ZeroconfService.DNSService.InvokeableObject">InvokeableObject</see> is set
            to null. Any time an asynchronous method needs to invoke a method in the
            main loop, it will instead run the method in its own thread.
            </summary>
            <remarks>
            <para>The thread safety of this property depends on the thread safety of
            the underlying dnssd.dll functions. Although it is not recommended, there
            are no known problems with this library using this method.
            </para>
            <para>
            If your application uses Windows.Forms or any other non-thread safe
            library, you will have to do your own invoking.
            </para>
            </remarks>
        </member>
        <member name="M:ZeroconfService.NetService.#ctor(System.String,System.String,System.String)">
            <summary>
            Initializes a new instance of the NetService class for resolving.
            </summary>
            <param name="domain">The domain of the service. For the local domain, use <c>"local."</c> not <c>""</c>.</param>
            <param name="type"><para>The network service type.</para>
            <para>This must include both the transport type (<c>"_tcp."</c> or <c>".udp"</c>)
            and the service name prefixed with an underscore(<c>"_"</c>). For example, to search
            for an HTTP service on TCP you would use <c>"_http._tcp."</c></para></param>
            <param name="name">The name of the service to resolve.</param>
            <remarks>
            <para>This constructor is the appropriate constructor used to resolve a service.
            You can not use this constructor to publish a service.</para>
            </remarks>
        </member>
        <member name="M:ZeroconfService.NetService.#ctor(System.String,System.String,System.String,System.Int32)">
            <summary>
            Initializes a new instance of the NetService class for publishing.
            </summary>
            <param name="domain">
            <para>The domain of the service. For the local domain, use <c>"local."</c> not <c>""</c>.</para>
            <para>To us the default domain, simply parse <c>""</c>.</para>
            </param>
            <param name="type"><para>The network service type.</para>
            <para>This must include both the transport type (<c>"_tcp."</c> or <c>".udp"</c>)
            and the service name prefixed with an underscore(<c>"_"</c>). For example, to search
            for an HTTP service on TCP you would use <c>"_http._tcp."</c></para></param>
            <param name="name">The name of the service. This name must be unique.</param>
            <param name="port">The port number on which your service is available.</param>
            <remarks>
            <para>This constructor is the appropriate constructor used to publish a service.
            You can not use this constructor to resolve a service.</para>
            </remarks>
        </member>
        <member name="M:ZeroconfService.NetService.Finalize">
            <summary>
            Standard Destructor.
            </summary>
        </member>
        <member name="M:ZeroconfService.NetService.Dispose">
            <summary>
            NetService objects make use of unmanaged resources.
            As such, they will not be properly garbage collected unless calls are balanced.
            Eg: Balance a call to Publish() with a call to Stop(), StartMonitoring() with StopMonitoring().
            Alternatively, the Dispose() method is available, which simply calls Stop() and StopMonitoring() on your behalf.
            </summary>
        </member>
        <member name="M:ZeroconfService.NetService.Stop">
            <summary>
            Stops the currently running search or resolution.
            </summary>
        </member>
        <member name="M:ZeroconfService.NetService.Publish">
            <summary>
            Attempts to advertise the service on the network.
            </summary>
        </member>
        <member name="M:ZeroconfService.NetService.RegisterReply(System.IntPtr,ZeroconfService.DNSServiceFlags,ZeroconfService.DNSServiceErrorType,System.String,System.String,System.String,System.IntPtr)">
            <summary>
            Called with the result of the call to DNSServiceRegister() in the Publish() method.
            
            If this object instance is configured with an <see cref="P:ZeroconfService.DNSService.InvokeableObject">InvokeableObject</see>,
            this method is called in a thread safe manner. Typically, this means it's called on the application main loop.
            </summary>
            <param name="sdRef">
            	The DNSServiceRef initialized by DNSServiceRegister().
            </param>
            <param name="flags">
            	Currently unused, reserved for future use.
            </param>
            <param name="errorCode">
            	Will be NoError on success, otherwise will indicate the failure that occurred
            	(including name conflicts, if the kDNSServiceFlagsNoAutoRename flag was used when registering.)
            	Other parameters are undefined if errorCode is nonzero.
            </param>
            <param name="name">
            	The service name registered (if the application did not specify a name in
            	DNSServiceRegister(), this indicates what name was automatically chosen).
            </param>
            <param name="regtype">
            	The type of service registered, as it was passed to the callout.
            </param>
            <param name="domain">
            	The domain on which the service was registered (if the application did not
            	specify a domain in DNSServiceRegister(), this indicates the default domain
            	on which the service was registered).
            </param>
            <param name="context">
            	The context pointer that was passed to the callout.
            </param>
        </member>
        <member name="M:ZeroconfService.NetService.ResolveWithTimeout(System.Int32)">
            <summary>
            Starts a resolve process with a timeout.
            </summary>
            <param name="seconds">The maximum number of seconds to attempt a resolve.</param>
        </member>
        <member name="M:ZeroconfService.NetService.ResolveReply(System.IntPtr,ZeroconfService.DNSServiceFlags,System.UInt32,ZeroconfService.DNSServiceErrorType,System.String,System.String,System.UInt16,System.UInt16,System.Byte[],System.IntPtr)">
            <summary>
            Called with the result of the call to DNSServiceResolve().
            
            If this object instance is configured with an <see cref="P:ZeroconfService.DNSService.InvokeableObject">InvokeableObject</see>,
            this method is called in a thread safe manner. Typically, this means it's called on the application main loop.
            </summary>
            <param name="sdRef">
            	The DNSServiceRef initialized by DNSServiceResolve().
            </param>
            <param name="flags">
            	Currently unused, reserved for future use.
            </param>
            <param name="interfaceIndex">
            	The interface on which the service was resolved.
            </param>
            <param name="errorCode">
            	Will be NoError (0) on success, otherwise will indicate the failure that occurred.
            	Other parameters are undefined if the errorCode is nonzero.
            </param>
            <param name="fullname">
            	The full service domain name, in the form [servicename].[protocol].[domain].
            	(This name is escaped following standard DNS rules, making it suitable for
            	passing to standard system DNS APIs such as res_query(), or to the
            	special-purpose functions included in this API that take fullname parameters.)
            </param>
            <param name="hosttarget">
            	The target hostname of the machine providing the service.  This name can
            	be passed to functions like gethostbyname() to identify the host's IP address.
            </param>
            <param name="port">
            	The port, in network byte order, on which connections are accepted for this service.
            </param>
            <param name="txtLen">
            	The length of the txt record, in bytes.
            </param>
            <param name="txtRecord">
            	The service's primary txt record, in standard txt record format.
            </param>
            <param name="context">
            	The context pointer that was passed to the callout.
            </param>
        </member>
        <member name="M:ZeroconfService.NetService.IPLookup">
            <summary>
            This method begins the process of looking up the IP address(es) associated with the current hostname.
            </summary>
        </member>
        <member name="M:ZeroconfService.NetService.IPLookupReply(System.IntPtr,ZeroconfService.DNSServiceFlags,System.UInt32,ZeroconfService.DNSServiceErrorType,System.String,ZeroconfService.DNSServiceType,ZeroconfService.DNSServiceClass,System.UInt16,System.Byte[],System.UInt32,System.IntPtr)">
            <summary>
            Called with the result of the call to DNSServiceQueryRecord() in the IPLookup() method.
            
            If this object instance is configured with an <see cref="P:ZeroconfService.DNSService.InvokeableObject">InvokeableObject</see>,
            this method is called in a thread safe manner. Typically, this means it's called on the application main loop.
            </summary>
            <param name="sdRef">
            	The DNSServiceRef initialized by DNSServiceQueryRecord().
            </param>
            <param name="flags">
            	Possible values are kDNSServiceFlagsMoreComing and kDNSServiceFlagsAdd.
            	The Add flag is NOT set for PTR records with a ttl of 0, i.e. "Remove" events.
            </param>
            <param name="interfaceIndex">
            	The interface on which the query was resolved.
            </param>
            <param name="errorCode">
            	Will be NoError on success, otherwise will indicate the failure that occurred.
            	Other parameters are undefined if errorCode is nonzero.
            </param>
            <param name="fullname">
            	The resource record's full domain name.
            </param>
            <param name="rrType">
            	The resource record's type (e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc)
            </param>
            <param name="rrClass">
            	The class of the resource record (usually kDNSServiceClass_IN).
            </param>
            <param name="rdLength">
            	The length, in bytes, of the resource record rdata.
            </param>
            <param name="rData">
            	The raw rdata of the resource record.
            </param>
            <param name="ttl">
            	The resource record's time to live, in seconds.
            </param>
            <param name="context">
            	The context pointer that was passed to the callout.
            </param>
        </member>
        <member name="M:ZeroconfService.NetService.ResolveTimerCallback(System.Object)">
            <summary>
            Called (on a thread pool worker thread) when the resolve timer fires.
            </summary>
            <param name="state">The object passed to the timer during initialization.</param>
        </member>
        <member name="M:ZeroconfService.NetService.ResolveTimerReply(System.Object)">
            <summary>
            Called when the resolve timer fires.
            
            If this object instance is configured with an <see cref="P:ZeroconfService.DNSService.InvokeableObject">InvokeableObject</see>,
            this method is called in a thread safe manner. Typically, this means it's called on the application main loop.
            </summary>
            <param name="state">The object passed to the timer during initialization.</param>
        </member>
        <member name="M:ZeroconfService.NetService.StartMonitoring">
            <summary>
            Starts the monitoring of TXT-record updates for the receiver.
            </summary>
        </member>
        <member name="M:ZeroconfService.NetService.StopMonitoring">
            <summary>
            Stops the monitoring of TXT-record updates for the receiver.
            </summary>
        </member>
        <member name="M:ZeroconfService.NetService.QueryReply(System.IntPtr,ZeroconfService.DNSServiceFlags,System.UInt32,ZeroconfService.DNSServiceErrorType,System.String,ZeroconfService.DNSServiceType,ZeroconfService.DNSServiceClass,System.UInt16,System.Byte[],System.UInt32,System.IntPtr)">
            <summary>
            Called with the result of the call to DNSServiceQueryRecord() in the StartMonitoring() method.
            
            If this object instance is configured with an <see cref="P:ZeroconfService.DNSService.InvokeableObject">InvokeableObject</see>,
            this method is called in a thread safe manner. Typically, this means it's called on the application main loop.
            </summary>
            <param name="sdRef">
            	The DNSServiceRef initialized by DNSServiceQueryRecord().
            </param>
            <param name="flags">
            	Possible values are kDNSServiceFlagsMoreComing and kDNSServiceFlagsAdd.
            	The Add flag is NOT set for PTR records with a ttl of 0, i.e. "Remove" events.
            </param>
            <param name="interfaceIndex">
            	The interface on which the query was resolved.
            </param>
            <param name="errorCode">
            	Will be NoError on success, otherwise will indicate the failure that occurred.
            	Other parameters are undefined if errorCode is nonzero.
            </param>
            <param name="fullname">
            	The resource record's full domain name.
            </param>
            <param name="rrType">
            	The resource record's type (e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc)
            </param>
            <param name="rrClass">
            	The class of the resource record (usually kDNSServiceClass_IN).
            </param>
            <param name="rdLength">
            	The length, in bytes, of the resource record rdata.
            </param>
            <param name="rData">
            	The raw rdata of the resource record.
            </param>
            <param name="ttl">
            	The resource record's time to live, in seconds.
            </param>
            <param name="context">
            	The context pointer that was passed to the callout.
            </param>
        </member>
        <member name="M:ZeroconfService.NetService.DataFromTXTRecordDictionary(System.Collections.IDictionary)">
            <summary>
            Returns a <c>byte[]</c> object representing a TXT record
            from a given dictionary.
            </summary>
            <param name="dict">
            	A dictionary containing a TXT record.
            </param>
            <returns>
            	A <c>byte[]</c> object representing TXT data formed from <c>dict</c>.
            </returns>
            <remarks>
            <para>
            	The dictionary must contain a set of key / value pairs representing a TXT record.
            </para>
            <para>
            	The key objects must be <see cref="T:System.String">String</see> objects.
            	These will be converted to UTF-8 format by this method.
            </para>
            <para>
            	The value objects must be either <see cref="T:System.String">String</see> objects or byte[] data.
            	String values will be converted to UTF-8 format by this method.
            </para>
            </remarks>
        </member>
        <member name="M:ZeroconfService.NetService.DataFromTXTRecordDictionary(System.Collections.IDictionary,System.Boolean)">
            <summary>
            Returns a <c>byte[]</c> object representing a TXT record
            from a given dictionary.
            </summary>
            <param name="dict">
            	A dictionary containing a TXT record.
            </param>
            <param name="allowRecordTruncation">
                A value of true will allow the enocoder to truncate the value data to fit
                within the remainder of bytes for the given key. A value of false will throw an
                <see cref="T:System.ArgumentException">ArgumentException</see> if the data will not fit.
            </param>
            <returns>
            	A <c>byte[]</c> object representing TXT data formed from <c>dict</c>.
            </returns>
            <remarks>
            <para>
            	The dictionary must contain a set of key / value pairs representing a TXT record.
            </para>
            <para>
            	The key objects must be <see cref="T:System.String">String</see> objects.
            	These will be converted to UTF-8 format by this method.
            </para>
            <para>
            	The value objects must be either <see cref="T:System.String">String</see> objects or byte[] data.
            	String values will be converted to UTF-8 format by this method.
            </para>
            </remarks>
        </member>
        <member name="M:ZeroconfService.NetService.DictionaryFromTXTRecordData(System.Byte[])">
            <summary>
            Returns an <c>IDictionary</c> representing a TXT record.
            </summary>
            <param name="txtRecords">
            	A <c>byte[]</c> object encoding of a TXT record.
            </param>
            <returns>
            	A dictionary representing a TXT record.
            </returns>
        </member>
        <member name="M:ZeroconfService.NetService.ByteArrayCompare(System.Byte[],System.Byte[])">
            <summary>
            Utility method to compare two byte arrays to see if they contain the same data.
            </summary>
            <param name="data1">Byte array 1</param>
            <param name="data2">Byte array 2</param>
            <returns></returns>
        </member>
        <member name="E:ZeroconfService.NetService.DidPublishService">
            <summary>
            Occurs when a service is published.
            </summary>
        </member>
        <member name="E:ZeroconfService.NetService.DidNotPublishService">
            <summary>
            Occurs when a service fails to be published.
            </summary>
        </member>
        <member name="E:ZeroconfService.NetService.DidResolveService">
            <summary>
            Occurs when a service was resolved.
            </summary>
        </member>
        <member name="E:ZeroconfService.NetService.DidNotResolveService">
            <summary>
            Occurs when a service fails to be resolved.
            </summary>
        </member>
        <member name="E:ZeroconfService.NetService.DidUpdateTXT">
            <summary>
            Occurs when the TXT record for a given service was updated.
            </summary>
            <remarks>
            This event is not fired after you update the TXT record for an event yourself.
            </remarks>
        </member>
        <member name="P:ZeroconfService.NetService.Domain">
            <summary>
            Gets the domain of the service.
            </summary>
            <remarks>
            This can be an explicit domain or it can contain the generic local (<c>"local."</c>) domain.
            </remarks>
        </member>
        <member name="P:ZeroconfService.NetService.Type">
            <summary>
            Gets the type of the service.
            </summary>
        </member>
        <member name="P:ZeroconfService.NetService.Name">
            <summary>
            Gets the name of the service.
            </summary>
        </member>
        <member name="P:ZeroconfService.NetService.Port">
            <summary>
            Gets the port of the service.
            </summary>
        </member>
        <member name="P:ZeroconfService.NetService.HostName">
            <summary>
            Gets the host name of the computer providing the service.
            Returns null if a successful resolve has not occurred.
            </summary>
        </member>
        <member name="P:ZeroconfService.NetService.Addresses">
            <summary>
            <para>Gets an IList object representing the available addresses of the
            resolved service.</para>
            <para>The objects in the list are <see cref="T:System.Net.IPEndPoint">IPEndPoint</see>s</para>
            </summary>
        </member>
        <member name="P:ZeroconfService.NetService.TXTRecordData">
            <summary>
            	when setting the TXT record for the receiver
            	If the service is not currently published, this will just update the local cache
            	Otherwise this method will attempt to update the txt record for the published service.
            </summary>
            <exception cref="T:ZeroconfService.DNSServiceException"/>
        </member>
        <member name="T:ZeroconfService.NetService.ServicePublished">
            <summary>
            Represents the method that will handle <see cref="E:ZeroconfService.NetService.DidPublishService">DidPublishService</see>
            events from a <see cref="T:ZeroconfService.NetService">NetService</see> instance.
            </summary>
            <param name="service">Sender of this event.</param>
        </member>
        <member name="T:ZeroconfService.NetService.ServiceNotPublished">
            <summary>
            Represents the method that will handle <see cref="E:ZeroconfService.NetService.DidNotPublishService">DidNotPublishService</see>
            events from a <see cref="T:ZeroconfService.NetService">NetService</see> instance.
            </summary>
            <param name="service">Sender of this event.</param>
            <param name="exception">The error that prevented the service from publishing.</param>
        </member>
        <member name="T:ZeroconfService.NetService.ServiceResolved">
            <summary>
            Represents the method that will handle <see cref="E:ZeroconfService.NetService.DidResolveService">DidResolveService</see>
            events from a <see cref="T:ZeroconfService.NetService">NetService</see> instance.
            </summary>
            <param name="service">Sender of this event.</param>
        </member>
        <member name="T:ZeroconfService.NetService.ServiceNotResolved">
            <summary>
            Represents the method that will handle <see cref="E:ZeroconfService.NetService.DidNotResolveService">DidNotResolveService</see>
            events from a <see cref="T:ZeroconfService.NetService">NetService</see> instance.
            </summary>
            <param name="service">Sender of this event.</param>
            <param name="exception">The error that prevented the service from resolving.</param>
        </member>
        <member name="T:ZeroconfService.NetService.ServiceTXTUpdated">
            <summary>
            Represents the method that will handle <see cref="E:ZeroconfService.NetService.DidUpdateTXT">DidUpdateTXT</see>
            events from a <see cref="T:ZeroconfService.NetService">NetService</see> instance.
            </summary>
            <param name="service">Sender of this event.</param>
        </member>
        <member name="T:ZeroconfService.NetServiceBrowser">
            <summary>
            <para>
            The NetServiceBrowser class enables the user of the class to find
            published services on a network using multicast DNS. The user uses
            an instance of the NetServiceBrowser, called a <B>network service browser</B>,
            to find devices such as Printers, HTTP and FTP servers.
            </para>
            <para>
            A <B>network service browser</B> can be used to obtain a list of possible
            domains or services. A <see cref="T:ZeroconfService.NetService">NetService</see> is then obtained for each discovered
            service. You can perform multiple searches at a time by using multiple
            <B>network service browsers</B>.
            </para>
            </summary>
            <remarks>
            <para>
            Network searches are performed asynchronously and are returned to your application
            via events fired from within this class. Events are typically fired in
            your application's main run loop, see <see cref="T:ZeroconfService.DNSService">DNSService</see> for information
            about controlling asynchronous events.
            </para>
            </remarks>
        </member>
        <member name="M:ZeroconfService.NetServiceBrowser.#ctor">
            <summary>
            Initialize a new instance of the <see cref="T:ZeroconfService.NetServiceBrowser">NetServiceBrowser</see> class.
            </summary>
        </member>
        <member name="M:ZeroconfService.NetServiceBrowser.Dispose">
            <summary>
            Releases all resources used by the <see cref="T:ZeroconfService.NetServiceBrowser">NetServiceBrowser</see> 
            </summary>
        </member>
        <member name="M:ZeroconfService.NetServiceBrowser.SearchForService(System.String,System.String)">
            <summary>
            Starts a search for services of a given type within a given domain.
            </summary>
            <param name="type">Type of service to search for.</param>
            <param name="domain">Domain name in which to search.</param>
            <remarks>
            The <I>domain</I> argument can be an explicity domain name, the
            generic "local." (including the trailing period) domain name or
            an empty string ("") which represents the default registration domain.
            </remarks>
        </member>
        <member name="M:ZeroconfService.NetServiceBrowser.SearchForBrowseableDomains">
            <summary>
            Starts a search for domains visible to the host.
            </summary>
        </member>
        <member name="M:ZeroconfService.NetServiceBrowser.SearchForRegistrationDomains">
            <summary>
            Starts a search for domains in which the host may register services.
            </summary>
            <remarks>
            Most clients do not need to use this method. It is normally sufficient
            to use the empty string ("") to registers a service in any available domain.
            </remarks>
        </member>
        <member name="M:ZeroconfService.NetServiceBrowser.Stop">
            <summary>
            Stops the currently running search or resolution.
            </summary>
        </member>
        <member name="E:ZeroconfService.NetServiceBrowser.DidFindService">
            <summary>
            Occurs when a <see cref="T:ZeroconfService.NetService">NetService</see> was found.
            </summary>
        </member>
        <member name="E:ZeroconfService.NetServiceBrowser.DidRemoveService">
            <summary>
            Occurs when a <see cref="T:ZeroconfService.NetService">NetService</see> is no longer available.
            </summary>
        </member>
        <member name="E:ZeroconfService.NetServiceBrowser.DidFindDomain">
            <summary>
            Occurs when a domain has been found.
            </summary>
        </member>
        <member name="E:ZeroconfService.NetServiceBrowser.DidRemoveDomain">
            <summary>
            Occurs when a domain is no longer available.
            </summary>
        </member>
        <member name="T:ZeroconfService.NetServiceBrowser.ServiceFound">
            <summary>
            Represents the method that will handle <see cref="E:ZeroconfService.NetServiceBrowser.DidFindService">DidFindService</see>
            events from a <see cref="T:ZeroconfService.NetServiceBrowser">NetServiceBrowser</see> instance.
            </summary>
            <param name="browser">Sender of this event.</param>
            <param name="service"><see cref="T:ZeroconfService.NetService">NetService</see> found by the the browser. This object
            can be used to obtain more information about the service.</param>
            <param name="moreComing">True when more services will be arriving shortly.</param>
            <remarks>
            <para>The target uses this delegate to compile a list of services. It should wait
            until moreComing is false before updating the user interface, so as to avoid
            flickering.
            </para>
            <para>
            The <c>service</c> object inherits its <see cref="T:ZeroconfService.DNSService">DNSService</see>
            invokable options from <b>browser</b>.
            </para>
            </remarks>
        </member>
        <member name="T:ZeroconfService.NetServiceBrowser.ServiceRemoved">
            <summary>
            Represents the method that will handle <see cref="E:ZeroconfService.NetServiceBrowser.DidRemoveService">DidRemoveService</see>
            events from a <see cref="T:ZeroconfService.NetServiceBrowser">NetServiceBrowser</see> instance.
            </summary>
            <param name="browser">Sender of this event.</param>
            <param name="service"><see cref="T:ZeroconfService.NetService">NetService</see> to be removed from the browser.
            This object is the same instance as was reported by the <see cref="T:ZeroconfService.NetServiceBrowser.ServiceFound">ServiceFound</see>
            event.</param>
            <param name="moreComing">True when more services will be made unavailable shortly.</param>
            <remarks>
            The target uses this delegate to compile a list of services. It should wait
            until moreComing is false before updating the user interface, so as to avoid
            flickering.
            </remarks>
        </member>
        <member name="T:ZeroconfService.NetServiceBrowser.DomainFound">
            <summary>
            Represents the method that will handle <see cref="E:ZeroconfService.NetServiceBrowser.DidFindDomain">DidFindDomain</see>
            events from a <see cref="T:ZeroconfService.NetServiceBrowser">NetServiceBrowser</see> instance.
            </summary>
            <param name="browser">Sender of this event.</param>
            <param name="domainName">Name of the domain found.</param>
            <param name="moreComing">True when more domains will be arriving shortly.</param>
            <remarks>
            The target uses this delegate to compile a list of domains. It should wait
            until moreComing is false before updating the user interface, so as to
            avoid flickering.
            </remarks>
        </member>
        <member name="T:ZeroconfService.NetServiceBrowser.DomainRemoved">
            <summary>
            Represents the method that will handle <see cref="E:ZeroconfService.NetServiceBrowser.DidRemoveDomain">DidRemoveDomain</see>
            events from a <see cref="T:ZeroconfService.NetServiceBrowser">NetServiceBrowser</see> instance.
            </summary>
            <param name="browser">Sender of this event.</param>
            <param name="domainName">Name of the domain that is no longer available.</param>
            <param name="moreComing">True when more domains will be made unavailble shortly.</param>
            <remarks>
            The target uses this delegate to compile a list of domains. It should wait
            until moreComing is false before updating the user interface, so as to
            avoid flickering.
            </remarks>
        </member>
        <member name="F:ZeroconfService.DNSServiceFlags.MoreComing">
            <summary>
            MoreComing indicates to a callback that at least one more result is
            queued and will be delivered following immediately after this one.
            Applications should not update their UI to display browse
            results when the MoreComing flag is set, because this would
            result in a great deal of ugly flickering on the screen.
            Applications should instead wait until until MoreComing is not set,
            and then update their UI.
            When MoreComing is not set, that doesn't mean there will be no more
            answers EVER, just that there are no more answers immediately
            available right now at this instant. If more answers become available
            in the future they will be delivered as usual.
            </summary>
        </member>
        <member name="F:ZeroconfService.DNSServiceFlags.Add">
            <summary>
            Flags for domain enumeration and browse/query reply callbacks.
            "Default" applies only to enumeration and is only valid in
            conjuction with "Add".  An enumeration callback with the "Add"
            flag NOT set indicates a "Remove", i.e. the domain is no longer
            valid.
            </summary>
        </member>
        <member name="F:ZeroconfService.DNSServiceFlags.NoAutoRename">
            <summary>
            Flag for specifying renaming behavior on name conflict when registering
            non-shared records. By default, name conflicts are automatically handled
            by renaming the service.  NoAutoRename overrides this behavior - with this
            flag set, name conflicts will result in a callback.  The NoAutorename flag
            is only valid if a name is explicitly specified when registering a service
            (i.e. the default name is not used.)
            </summary>
        </member>
        <member name="F:ZeroconfService.DNSServiceFlags.BrowseDomains">
            <summary>
            Flags for specifying domain enumeration type in DNSServiceEnumerateDomains.
            BrowseDomains enumerates domains recommended for browsing,
            RegistrationDomains enumerates domains recommended for registration.
            </summary>
        </member>
        <member name="F:ZeroconfService.DNSServiceFlags.LongLivedQuery">
            <summary>
            Flag for creating a long-lived unicast query for the DNSServiceQueryRecord call.
            </summary>
        </member>
        <member name="T:ZeroconfService.DNSServiceErrorType">
            <summary>
            The error type used by the underlying dnssd.dll. These errors can
            be wrapped in <see cref="T:ZeroconfService.DNSServiceException">DNSServiceException</see> exceptions.
            </summary>
        </member>
        <member name="M:ZeroconfService.mDNSImports.DNSServiceGetProperty(System.String,System.IntPtr,System.UInt32@)">
            <summary>
            Gets the specified property.
            </summary>
            <param name="name">
            	The requested attribute.
            	Currently the only attribute defined is DNSServiceProperty_DaemonVersion.
            </param>
            <param name="result">
            	Place to store result.
            	For retrieving DaemonVersion, this should be the address of a UInt32.
            </param>
            <param name="size">
            	On return, contains size of the result.
            	For DaemonVersion, the returned size is always sizeof(UInt32, but
            	future attributes could be defined which return variable-sized results.
            </param>
            <returns>
            Returns kDNSServiceErr_NoError on success,
            	otherwise returns an error code indicating the specific failure that occurred.
            </returns>
        </member>
        <member name="M:ZeroconfService.mDNSImports.DNSServiceRefSockFD(System.IntPtr)">
            <summary>
            Access underlying Unix domain socket for an initialized DNSServiceRef.
            The DNS Service Discovery implmementation uses this socket to communicate between
            the client and the mDNSResponder daemon.  The application MUST NOT directly read from
            or write to this socket.  Access to the socket is provided so that it can be used as a
            run loop source, or in a select() loop: when data is available for reading on the socket,
            DNSServiceProcessResult() should be called, which will extract the daemon's reply from
            the socket, and pass it to the appropriate application callback.  By using a run loop or
            select(), results from the daemon can be processed asynchronously.  Without using these
            constructs, DNSServiceProcessResult() will block until the response from the daemon arrives.
            The client is responsible for ensuring that the data on the socket is processed in a timely
            fashion - the daemon may terminate its connection with a client that does not clear its
            socket buffer.
            </summary>
            <param name="sdRef">
            	A DNSServiceRef initialized by any of the DNSService calls.
            </param>
            <returns>
            	The DNSServiceRef's underlying socket descriptor, or -1 on error.
            </returns>
        </member>
        <member name="M:ZeroconfService.mDNSImports.DNSServiceProcessResult(System.IntPtr)">
            <summary>
            Read a reply from the daemon, calling the appropriate application callback.  This call will
            block until the daemon's response is received.  Use DNSServiceRefSockFD() in
            conjunction with a run loop or select() to determine the presence of a response from the
            server before calling this function to process the reply without blocking.  Call this function
            at any point if it is acceptable to block until the daemon's response arrives.  Note that the
            client is responsible for ensuring that DNSServiceProcessResult() is called whenever there is
            a reply from the daemon - the daemon may terminate its connection with a client that does not
            process the daemon's responses.
            </summary>
            <param name="sdRef">
            	A DNSServiceRef initialized by any of the DNSService calls that take a callback parameter.
            </param>
            <returns>
            Returns kDNSServiceErr_NoError on success,
            	otherwise returns an error code indicating the specific failure that occurred.
            </returns>
        </member>
        <member name="M:ZeroconfService.mDNSImports.DNSServiceRefDeallocate(System.IntPtr)">
            <summary>
            Terminate a connection with the daemon and free memory associated with the DNSServiceRef.
            Any services or records registered with this DNSServiceRef will be deregistered. Any
            Browse, Resolve, or Query operations called with this reference will be terminated.
            
            Note: If the reference's underlying socket is used in a run loop or select() call, it should
            be removed BEFORE DNSServiceRefDeallocate() is called, as this function closes the reference's
            socket.
            
            Note: If the reference was initialized with DNSServiceCreateConnection(), any DNSRecordRefs
            created via this reference will be invalidated by this call - the resource records are
            deregistered, and their DNSRecordRefs may not be used in subsequent functions.  Similarly,
            if the reference was initialized with DNSServiceRegister, and an extra resource record was
            added to the service via DNSServiceAddRecord(), the DNSRecordRef created by the Add() call
            is invalidated when this function is called - the DNSRecordRef may not be used in subsequent
            functions.
            
            Note: This call is to be used only with the DNSServiceRef defined by this API.  It is
            not compatible with dns_service_discovery_ref objects defined in the legacy Mach-based
            DNSServiceDiscovery.h API.
            </summary>
            <param name="sdRef">
            	A DNSServiceRef initialized by any of the DNSService calls.
            </param>
        </member>
        <member name="M:ZeroconfService.mDNSImports.DNSServiceBrowse(System.IntPtr@,ZeroconfService.DNSServiceFlags,System.UInt32,System.String,System.String,ZeroconfService.mDNSImports.DNSServiceBrowseReply,System.IntPtr)">
            <summary>
            Browse for instances of a service.
            </summary>
            <param name="sdRef">
            	A pointer to an uninitialized DNSServiceRef. If the call succeeds
            	then it initializes the DNSServiceRef, returns NoError,
            	and the browse operation will run indefinitely until the client
            	terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate().
            </param>
            <param name="flags">
            	Currently ignored, reserved for future use.
            </param>
            <param name="interfaceIndex">
            	If non-zero, specifies the interface on which to browse for services
            	(the index for a given interface is determined via the if_nametoindex()
            	family of calls.)  Most applications will pass 0 to browse on all available
            	interfaces. See "Constants for specifying an interface index" for more details.
            </param>
            <param name="regtype">
            	The service type being browsed for followed by the protocol, separated by a
            	dot (e.g. "_ftp._tcp").  The transport protocol must be "_tcp" or "_udp".
            </param>
            <param name="domain">
            	If non-NULL, specifies the domain on which to browse for services.
            	Most applications will not specify a domain, instead browsing on the
            	default domain(s).
            </param>
            <param name="callBack">
            	The function to be called when an instance of the service being browsed for
            	is found, or if the call asynchronously fails.
            </param>
            <param name="context">
            	An application context pointer which is passed to the callback function (may be NULL).
            </param>
            <returns>
            Returns kDNSServiceErr_NoError on succeses (any subsequent, asynchronous
            	errors are delivered to the callback), otherwise returns an error code indicating
            	the error that occurred (the callback is not invoked and the DNSServiceRef
            	is not initialized.)
            </returns>
        </member>
        <member name="M:ZeroconfService.mDNSImports.DNSServiceResolve(System.IntPtr@,ZeroconfService.DNSServiceFlags,System.UInt32,System.String,System.String,System.String,ZeroconfService.mDNSImports.DNSServiceResolveReply,System.IntPtr)">
            <summary>
            Resolve a service name discovered via DNSServiceBrowse()
            to a target host name, port number, and txt record.
             Note: Applications should NOT use DNSServiceResolve() solely for 
             txt record monitoring - use DNSServiceQueryRecord() instead,
             as it is more efficient for this task.
             
            Note: When the desired results have been returned,
            the client MUST terminate the resolve by calling DNSServiceRefDeallocate().
            Note: DNSServiceResolve() behaves correctly for typical services that have
            a single SRV record and a single TXT record. To resolve non-standard
            services with multiple SRV or TXT records, DNSServiceQueryRecord() should be used.
            </summary>
            <param name="sdRef">
            	A pointer to an uninitialized DNSServiceRef.
            	If the call succeeds then it initializes the DNSServiceRef, returns
            	NoError, and the resolve operation will run indefinitely until
            	the client terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate().
            </param>
            <param name="flags">
            	Currently ignored, reserved for future use.
            </param>
            <param name="interfaceIndex">
            	The interface on which to resolve the service. If this resolve call is
            	as a result of a currently active DNSServiceBrowse() operation, then the
            	interfaceIndex should be the index reported in the DNSServiceBrowseReply
            	callback. If this resolve call is using information previously saved
            	(e.g. in a preference file) for later use, then use interfaceIndex 0, because
            	the desired service may now be reachable via a different physical interface.
            	See "Constants for specifying an interface index" for more details.
            </param>
            <param name="name">
            	The name of the service instance to be resolved,
            	as reported to the DNSServiceBrowseReply() callback.
            </param>
            <param name="regtype">
            	The type of the service instance to be resolved,
            	as reported to the DNSServiceBrowseReply() callback.
            </param>
            <param name="domain">
            	The domain of the service instance to be resolved,
            	as reported to the DNSServiceBrowseReply() callback.
            </param>
            <param name="callBack">
            	The function to be called when a result is found, or if the call
            	asynchronously fails.
            </param>
            <param name="context">
            	An application context pointer which is passed to the callback function (may be NULL).
            </param>
            <returns>
            Returns kDNSServiceErr_NoError on succeses (any subsequent, asynchronous
            	errors are delivered to the callback), otherwise returns an error code indicating
            	the error that occurred (the callback is never invoked and the DNSServiceRef
            	is not initialized.)
            </returns>
        </member>
        <member name="M:ZeroconfService.mDNSImports.DNSServiceQueryRecord(System.IntPtr@,ZeroconfService.DNSServiceFlags,System.UInt32,System.String,ZeroconfService.DNSServiceType,ZeroconfService.DNSServiceClass,ZeroconfService.mDNSImports.DNSServiceQueryReply,System.IntPtr)">
            <summary>
            Query for an arbitrary DNS record.
            </summary>
            <param name="sdRef">
            	A pointer to an uninitialized DNSServiceRef. If the call succeeds
            	then it initializes the DNSServiceRef, returns NoError,
            	and the query operation will run indefinitely until the client
            	terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate().
            </param>
            <param name="flags">
            	Pass kDNSServiceFlagsLongLivedQuery to create a "long-lived" unicast
            	query in a non-local domain.  Without setting this flag, unicast queries
            	will be one-shot - that is, only answers available at the time of the call
            	will be returned.  By setting this flag, answers (including Add and Remove
            	events) that become available after the initial call is made will generate
            	callbacks.  This flag has no effect on link-local multicast queries.
            </param>
            <param name="interfaceIndex">
            	If non-zero, specifies the interface on which to issue the query
            	(the index for a given interface is determined via the if_nametoindex()
            	family of calls.)  Passing 0 causes the name to be queried for on all
            	interfaces. See "Constants for specifying an interface index" for more details.
            </param>
            <param name="fullname">
            	The full domain name of the resource record to be queried for.
            </param>
            <param name="rrType">
            	The numerical type of the resource record to be queried for
            	(e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc)
            </param>
            <param name="rrClass">
            	The class of the resource record (usually kDNSServiceClass_IN).
            </param>
            <param name="callBack">
            	The function to be called when a result is found, or if the call
            	asynchronously fails.
            </param>
            <param name="context">
            	An application context pointer which is passed to the callback function (may be NULL).
            </param>
            <returns>
            Returns kDNSServiceErr_NoError on succeses (any subsequent, asynchronous
            	errors are delivered to the callback), otherwise returns an error code indicating
            	the error that occurred (the callback is never invoked and the DNSServiceRef
            	is not initialized.)
            </returns>
        </member>
        <member name="M:ZeroconfService.mDNSImports.DNSServiceEnumerateDomains(System.IntPtr@,ZeroconfService.DNSServiceFlags,System.UInt32,ZeroconfService.mDNSImports.DNSServiceDomainEnumReply,System.IntPtr)">
            <summary>
            Asynchronously enumerate domains available for browsing and registration.
            The enumeration MUST be cancelled via DNSServiceRefDeallocate() when no more domains
            are to be found.
            Note that the names returned are (like all of DNS-SD) UTF-8 strings,
            and are escaped using standard DNS escaping rules.
            (See "Notes on DNS Name Escaping" earlier in this file for more details.)
            A graphical browser displaying a hierarchical tree-structured view should cut
            the names at the bare dots to yield individual labels, then de-escape each
            label according to the escaping rules, and then display the resulting UTF-8 text.
            </summary>
            <param name="sdRef">
            	A pointer to an uninitialized DNSServiceRef. If the call succeeds
            	then it initializes the DNSServiceRef, returns NoError,
            	and the enumeration operation will run indefinitely until the client
            	terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate().
            </param>
            <param name="flags">
            	Possible values are:
            	kDNSServiceFlagsBrowseDomains to enumerate domains recommended for browsing.
            	kDNSServiceFlagsRegistrationDomains to enumerate domains recommended for registration.
            </param>
            <param name="interfaceIndex">
            	If non-zero, specifies the interface on which to look for domains.
            	(the index for a given interface is determined via the if_nametoindex()
            	family of calls.)  Most applications will pass 0 to enumerate domains on
            	all interfaces. See "Constants for specifying an interface index" for more details.
            </param>
            <param name="callBack">
            	The function to be called when a domain is found or the call asynchronously fails.
            </param>
            <param name="context">
            	An application context pointer which is passed to the callback function (may be NULL).
            </param>
            <returns>
            Returns kDNSServiceErr_NoError on succeses (any subsequent, asynchronous
            	errors are delivered to the callback), otherwise returns an error code indicating
            	the error that occurred (the callback is not invoked and the DNSServiceRef
            	is not initialized.)
            </returns>
        </member>
        <member name="M:ZeroconfService.mDNSImports.DNSServiceRegister(System.IntPtr@,ZeroconfService.DNSServiceFlags,System.UInt32,System.String,System.String,System.String,System.String,System.UInt16,System.UInt16,System.Byte[],ZeroconfService.mDNSImports.DNSServiceRegisterReply,System.IntPtr)">
            <summary>
            Register a service that is discovered via Browse() and Resolve() calls.
            </summary>
            <param name="sdRef">
            	A pointer to an uninitialized DNSServiceRef. If the call succeeds
            	then it initializes the DNSServiceRef, returns NoError,
            	and the registration will remain active indefinitely until the client
            	terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate().
            </param>
            <param name="flags">
            	Indicates the renaming behavior on name conflict (most applications will pass 0).
            	See flag definitions above for details.
            </param>
            <param name="interfaceIndex">
            	If non-zero, specifies the interface on which to register the service
            	(the index for a given interface is determined via the if_nametoindex() family of calls.)
            	Most applications will pass 0 to register on all available interfaces.
            	See "Constants for specifying an interface index" for more details.
            </param>
            <param name="name">
            	If non-NULL, specifies the service name to be registered.
            	Most applications will not specify a name, in which case the computer
            	name is used (this name is communicated to the client via the callback).
            	If a name is specified, it must be 1-63 bytes of UTF-8 text.
            	If the name is longer than 63 bytes it will be automatically truncated
            	to a legal length, unless the NoAutoRename flag is set,
            	in which case BadParam will be returned.
            </param>
            <param name="regtype">
            	The service type followed by the protocol, separated by a dot
            	(e.g. "_ftp._tcp"). The service type must be an underscore, followed
            	by 1-14 characters, which may be letters, digits, or hyphens.
            	The transport protocol must be "_tcp" or "_udp". New service types
            	should be registered at http://www.dns-sd.org/ServiceTypes.html
            </param>
            <param name="domain">
            	If non-NULL, specifies the domain on which to advertise the service.
            	Most applications will not specify a domain, instead automatically
            	registering in the default domain(s).
            </param>
            <param name="host">
            	If non-NULL, specifies the SRV target host name.  Most applications
            	will not specify a host, instead automatically using the machine's
            	default host name(s).  Note that specifying a non-NULL host does NOT
            	create an address record for that host - the application is responsible
            	for ensuring that the appropriate address record exists, or creating it
            	via DNSServiceRegisterRecord().
            </param>
            <param name="port">
            	The port, in network byte order, on which the service accepts connections.
            	Pass 0 for a "placeholder" service (i.e. a service that will not be discovered
            	by browsing, but will cause a name conflict if another client tries to
            	register that same name).  Most clients will not use placeholder services.
            </param>
            <param name="txtLen">
            	The length of the txtRecord, in bytes.  Must be zero if the txtRecord is NULL.
            </param>
            <param name="txtRecord">
            	The TXT record rdata. A non-NULL txtRecord MUST be a properly formatted DNS
            	TXT record, i.e. [length byte] [data] [length byte] [data] ...
            	Passing NULL for the txtRecord is allowed as a synonym for txtLen=1, txtRecord="",
            	i.e. it creates a TXT record of length one containing a single empty string.
            	RFC 1035 doesn't allow a TXT record to contain *zero* strings, so a single empty
            	string is the smallest legal DNS TXT record.
            </param>
            <param name="callBack">
            	The function to be called when the registration completes or asynchronously
            	fails.  The client MAY pass NULL for the callback -  The client will NOT be notified
            	of the default values picked on its behalf, and the client will NOT be notified of any
            	asynchronous errors (e.g. out of memory errors, etc.) that may prevent the registration
            	of the service.  The client may NOT pass the NoAutoRename flag if the callback is NULL.
            	The client may still deregister the service at any time via DNSServiceRefDeallocate().
            </param>
            <param name="context">
            	An application context pointer which is passed to the callback function (may be NULL).
            </param>
            <returns>
            Returns kDNSServiceErr_NoError on succeses (any subsequent, asynchronous
            	errors are delivered to the callback), otherwise returns an error code indicating
            	the error that occurred (the callback is never invoked and the DNSServiceRef
            	is not initialized.)
            </returns>
        </member>
        <member name="M:ZeroconfService.mDNSImports.DNSServiceUpdateRecord(System.IntPtr,System.IntPtr,ZeroconfService.DNSServiceFlags,System.UInt16,System.Byte[],System.UInt32)">
            <summary>
            Update a registered resource record.  The record must either be:
              - The primary txt record of a service registered via DNSServiceRegister()
              - A record added to a registered service via DNSServiceAddRecord()
              - An individual record registered by DNSServiceRegisterRecord()
            </summary>
            <param name="sdRef">
            	A DNSServiceRef that was initialized by DNSServiceRegister() or DNSServiceCreateConnection().
            </param>
            <param name="recordRef">
            	A DNSRecordRef initialized by DNSServiceAddRecord, or NULL to update the service's primary txt record.
            </param>
            <param name="flags">
            	Currently ignored, reserved for future use.
            </param>
            <param name="rdLength">
            	The length, in bytes, of the new rdata.
            </param>
            <param name="rData">
            	The new rdata to be contained in the updated resource record.
            </param>
            <param name="ttl">
            	The time to live of the updated resource record, in seconds.
            	Specify a value of 0 for the TTL to allow mDNSResponder to automatically choose the default value.
            </param>
            <returns>Returns kDNSServiceErr_NoError on success, otherwise returns an error code indicating the error that occurred.</returns>
        </member>
        <member name="T:ZeroconfService.mDNSImports.DNSServiceBrowseReply">
            <summary>
            Callback method for DNSServiceBrowse()
            </summary>
            <param name="sdRef">
            	The DNSServiceRef initialized by DNSServiceBrowse().
            </param>
            <param name="flags">
            	Possible values are kDNSServiceFlagsMoreComing and kDNSServiceFlagsAdd.
            	See flag definitions for details.
            </param>
            <param name="interfaceIndex">
            	The interface on which the service is advertised.  This index should
            	be passed to DNSServiceResolve() when resolving the service.
            </param>
            <param name="errorCode">
            	Will be NoError (0) on success, otherwise will
            	indicate the failure that occurred.  Other parameters are undefined if
            	the errorCode is nonzero.
            </param>
            <param name="serviceName">
            	The discovered service name. This name should be displayed to the user,
            	and stored for subsequent use in the DNSServiceResolve() call.
            </param>
            <param name="regtype">
            	The service type, which is usually (but not always) the same as was passed
            	to DNSServiceBrowse(). One case where the discovered service type may
            	not be the same as the requested service type is when using subtypes:
            	The client may want to browse for only those ftp servers that allow
            	anonymous connections. The client will pass the string "_ftp._tcp,_anon"
            	to DNSServiceBrowse(), but the type of the service that's discovered
            	is simply "_ftp._tcp". The regtype for each discovered service instance
            	should be stored along with the name, so that it can be passed to
            	DNSServiceResolve() when the service is later resolved.
            </param>
            <param name="replyDomain">
            	The domain of the discovered service instance. This may or may not be the
            	same as the domain that was passed to DNSServiceBrowse(). The domain for each
            	discovered service instance should be stored along with the name, so that
            	it can be passed to DNSServiceResolve() when the service is later resolved.
            </param>
            <param name="context">
            	The context pointer that was passed to the callout.
            </param>
        </member>
        <member name="T:ZeroconfService.mDNSImports.DNSServiceResolveReply">
            <summary>
            Callback method for DNSServiceResolve()
            </summary>
            <param name="sdRef">
            	The DNSServiceRef initialized by DNSServiceResolve().
            </param>
            <param name="flags">
            	Currently unused, reserved for future use.
            </param>
            <param name="interfaceIndex">
            	The interface on which the service was resolved.
            </param>
            <param name="errorCode">
            	Will be NoError (0) on success, otherwise will
            	indicate the failure that occurred.  Other parameters are undefined if
            	the errorCode is nonzero.
            </param>
            <param name="fullname">
            	The full service domain name, in the form [servicename].[protocol].[domain].
            	(This name is escaped following standard DNS rules, making it suitable for
            	passing to standard system DNS APIs such as res_query(), or to the
            	special-purpose functions included in this API that take fullname parameters.
            </param>
            <param name="hosttarget">
            	The target hostname of the machine providing the service.  This name can
            	be passed to functions like gethostbyname() to identify the host's IP address.
            </param>
            <param name="port">
            	The port, in network byte order, on which connections are accepted for this service.
            </param>
            <param name="txtLen">
            	The length of the txt record, in bytes.
            </param>
            <param name="txtRecord">
            	The service's primary txt record, in standard txt record format.
            </param>
            <param name="context">
            	The context pointer that was passed to the callout.
            </param>
        </member>
        <member name="T:ZeroconfService.mDNSImports.DNSServiceQueryReply">
            <summary>
            Callback method for DNSServiceQueryRecord()
            </summary>
            <param name="sdRef">
            	The DNSServiceRef initialized by DNSServiceQueryRecord().
            </param>
            <param name="flags">
            	Possible values are kDNSServiceFlagsMoreComing and
            	kDNSServiceFlagsAdd.  The Add flag is NOT set for PTR records
            	with a ttl of 0, i.e. "Remove" events.
            </param>
            <param name="interfaceIndex">
            	The interface on which the query was resolved (the index for a given
            	interface is determined via the if_nametoindex() family of calls).
            	See "Constants for specifying an interface index" for more details.
            </param>
            <param name="errorCode">
            	Will be NoError on success, otherwise will
            	indicate the failure that occurred.  Other parameters are undefined if
            	errorCode is nonzero.
            </param>
            <param name="fullname">
            	The resource record's full domain name.
            </param>
            <param name="rrType">
            	The resource record's type (e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc)
            </param>
            <param name="rrClass">
            	The class of the resource record (usually kDNSServiceClass_IN).
            </param>
            <param name="rdLength">
            	The length, in bytes, of the resource record rdata.
            </param>
            <param name="rData">
            	The raw rdata of the resource record.
            </param>
            <param name="ttl">
            	The resource record's time to live, in seconds.
            </param>
            <param name="context">
            	The context pointer that was passed to the callout.
            </param>
        </member>
        <member name="T:ZeroconfService.mDNSImports.DNSServiceDomainEnumReply">
            <summary>
            Callback method for DNSServiceEnumerateDomains()
            </summary>
            <param name="sdRef">
            	The DNSServiceRef initialized by DNSServiceEnumerateDomains().
            </param>
            <param name="flags">
            	Possible values are:
            	kDNSServiceFlagsMoreComing
            	kDNSServiceFlagsAdd
            	kDNSServiceFlagsDefault
            </param>
            <param name="interfaceIndex">
            	Specifies the interface on which the domain exists.  (The index for a given
            	interface is determined via the if_nametoindex() family of calls.)
            </param>
            <param name="errorCode">
            	Will be NoError (0) on success, otherwise indicates
            	the failure that occurred (other parameters are undefined if errorCode is nonzero).
            </param>
            <param name="replyDomain">
            	The name of the domain.
            </param>
            <param name="context">
            	The context pointer passed to DNSServiceEnumerateDomains.
            </param>
        </member>
        <member name="T:ZeroconfService.mDNSImports.DNSServiceRegisterReply">
            <summary>
            Callback method for DNSServiceRegister()
            </summary>
            <param name="sdRef">
            	The DNSServiceRef initialized by DNSServiceRegister().
            </param>
            <param name="flags">
            	Currently unused, reserved for future use.
            </param>
            <param name="errorCode">
            	Will be NoError on success, otherwise will
            	indicate the failure that occurred (including name conflicts,
            	if the kDNSServiceFlagsNoAutoRename flag was used when registering.)
            	Other parameters are undefined if errorCode is nonzero.
            </param>
            <param name="name">
            	The service name registered (if the application did not specify a name in
            	DNSServiceRegister(), this indicates what name was automatically chosen).
            </param>
            <param name="regtype">
            	The type of service registered, as it was passed to the callout.
            </param>
            <param name="domain">
            	The domain on which the service was registered (if the application did not
            	specify a domain in DNSServiceRegister(), this indicates the default domain
            	on which the service was registered).
            </param>
            <param name="context">
            	The context pointer that was passed to the callout.
            </param>
        </member>
        <member name="T:ZeroconfService.DNSServiceException">
            <summary>
            An exception that is thrown when a <see cref="T:ZeroconfService.NetService">NetService</see>
            or <see cref="T:ZeroconfService.NetServiceBrowser">NetServiceBrowser</see> dll error occurs.
            </summary>
        </member>
        <member name="M:ZeroconfService.DNSServiceException.ToString">
            <summary>
            Creates a returns a string representation of the current exception
            </summary>
            <returns></returns>
        </member>
        <member name="M:ZeroconfService.DNSServiceException.GetBaseException">
            <summary>
            Returns the Exception that is the root cause of the exception.
            </summary>
            <returns>The first exception thrown in a chain of exceptions.
            If the InnerException property of the current exception is a null reference, this property returns the current exception.
            </returns>
        </member>
        <member name="P:ZeroconfService.DNSServiceException.Message">
            <summary>
            Gets a message that describes the current exception.
            </summary>
        </member>
        <member name="P:ZeroconfService.DNSServiceException.Function">
            <summary>
            Gets the function name (if possible) that returned the underlying error
            </summary>
        </member>
        <member name="P:ZeroconfService.DNSServiceException.ErrorType">
            <summary>
            Gets the <see cref="T:ZeroconfService.DNSServiceErrorType">DNSServiceErrorType</see> error
            that was returned by the underlying function.
            </summary>
        </member>
    </members>
</doc>
